01. Jobs in Computer Vision
6 Questions About Computer Vision Jobs
1. How do I break into the computer vision industry?
Computer vision and related fields in AI are so fast-moving. Find opportunities by staying on top of new developments.
We recommend a 3-part strategy to finding opportunities in computer vision.
- Stay updated on thought leadership. Start every morning reading a 10-minute blog post on Medium or by scrolling your Twitter feed. Authors tend to link to larger research papers for further insights and learnings.
- See how computer vision fits into common image analysis and machine learning roles, ranging from researcher to image analyst to software engineer. Do job searches based on skills (such as feature extraction or SLAM), rather than job title. You will find more opportunities.
- Create your own computer vision application and share it! Job seekers ask Udacity Careers all the time on how to talk about their skills and experiences - better than talking is showing. Develop your own app or product (it can be a small, personal project!), put the work online (ie: upload your code on GitHub), and then write a blog post documenting the development process and purpose of the project. You can pursue both software and hardware projects.
- Software ideas: Demonstrate basic image processing skills or proficiency with OpenCV. Run deep learning models with AWS Deeplens. You can also get inspired by what other people are doing - right now on Medium, many people are blogging about their TensorFlow projects.
- Hardware ideas: Raspberry Pi models are small and affordable and Google released the AIY Vision Kit in 2017. Share what you create by writing a blog about the experience and become a part of the larger community by hashtagging #AIYProjects.
2. What are the key knowledge/skills that are useful to work on computer vision as an engineer?
In the Computer Vision Nanodegree program, you will gain insights into and practice these core computer vision skills:
- Implement image processing techniques like color and geometric transforms
- Create and apply convolutional filters to images to smooth them or detect object edges
- Apply feature extraction methods like Histogram of Oriented Gradients (HOG) and ORB to detect features like the eyes and mouth on a face
- Implement k-means clustering and contour detection to find areas with similar traits in an image
- Define and train a convolutional neural network (CNN) to classify different items of clothing
- Build a CNN that aims to solve a regression task: detecting facial keypoints; this skill can be extended to the task of emotion recognition
- Explore how region-based CNNs and formulations like YOLO lead to faster object recognition
- Define and train a recurrent neural network (RNN) to process and generate sequences of text
- Use long short-term memory cells to create an RNN that can produce captions given an image feature vector
- Train your own algorithmic models to predict and understand visual scenes
- Use methods like optical flow and Bayesian filters to track an object’s motion
- Use SLAM to simultaneously localize an autonomous vehicle and create a map of the landmarks that surround it using only sensor measurements, collected over time
To become a better job candidate, dive deeper into the follow concepts, beyond the Nanodegree program.
- Knowledge of or applications in deep learning and neural networks [learning resource - not Udacity]
- Programming competency in C++ (a useful language for working with hardware). Find C++ programming lessons in the Extracurricular section of your Nanodegree Classroom!
- Simultaneous Location and Mapping (SLAM)
- PyTorch and/or TensorFlow
Although the above is by no means an exhaustive list, taking the time to pick up any of these these technologies will only strengthen your chances of moving forward in an application process.
3. Could I apply for deep learning jobs?
Companies investing in cutting-edge technologies often look for candidates with both deep learning and computer vision knowledge. For example, Athelas uses computer vision with deep learning to count white blood cells.
A deep learning engineer may be asked to focus on designing and changing the architecture of a CNN or RNN so that it is optimized for training for a variety of tasks, such as voice recognition or generating fake images. Computer vision and deep learning engineers tend to focus on deep learning as it is applied to feature extraction and object recognition with a CNN; some tasks and skills that fall in both realms are pre-processing image data, and training a CNN to detect meaningful visual features. A computer vision & deep learning engineer is expected to work with visual data like images, video, and LiDAR point clouds (laser data).
4. What are some job titles in computer vision?
Tip: Remember that there are so many roles available related to computer vision. Instead of searching for job titles, consider finding top AI startups and companies and looking at their overall jobs page.
Many companies, when advertising for roles requiring computer vision skills, use substitute terms. You may find these terms in job postings, rather than "computer vision" itself. Remember to read the job listing carefully. Common key terms akin to computer vision are:
- Image Recognition
- 3D Image Analysis
- Image Processing
- Deep Learning
Here are common titles of jobs in computer vision:
- Machine Learning Engineer
- Image Processing Engineer
- Computer Vision Engineer
- Researcher, Computer Vision
- Machine Learning Researcher, Computer Vision
- Applied Research Scientist
- AI Vision Image Processing Engineer
- Software Engineer, Vision
- Data Scientist
- Deep Learning Engineer - Computer Vision
5. What do typical computer vision engineers do in their day-to-day?
Although you will find jobs, especially in Silicon Valley, labelled "computer vision engineer", you are most likely to find other roles (such as "applied researcher" or "data scientist") that ask for computer vision skills. Do Boolean searches that combine some of your background with computer vision skills. Many smaller companies not yet established in the AI field may be looking for a generalist first, to pave the way for their data team.
Some common work duties you will find in job postings are:
- Design and build machine intelligence features
- Develop machine learning algorithms related to computer vision, such as object detection/recognition and image retrieval
- Deploy analytics models in production and evaluating their scalability
- Code in C++ and Python
- Collaborate with other data and engineering teams on hardware, software architecture hardware and quality assurance
- Improve deep-learning-based image segmentation and object detection pipelines
- Identify core requirements for camera sensors
6. Okay, I know all of this now. What should I do next?
Right now, you are learning the foundational skills for a career in computer vision. Focus on your learning, and imagine yourself in different roles. We recommend performing a job search to see what's out there.
We'll help you get started. We searched for "computer vision" jobs worldwide on LinkedIn. Click the button below to see the search results. Change your search terms and apply filters. Once you have an idea of which jobs or companies you may be interested in, read about the companies or find personal blogs by people working in those roles. You can even reach out to people for informational interviews.
After you spend some time looking at various jobs available to you, come back to the Classroom to continue.